package ModelLayer;
import java.text.DateFormat;
import java.util.ArrayList;

/**
 * Write a description of class OrdreContainer here.
 * 
 * @author (Gruppe 1) 
 * @version (17.12.2012)
 */
public class OrdreContainer
{
    private ArrayList<Ordre> ordreListe;
    private static OrdreContainer ordreContainer;

    /**
     * Constructor for objects of class OrdreContainer
     */
    private OrdreContainer()
    {
        ordreListe = new ArrayList<Ordre>();
        ordreBase();
    }
    /**
    * Singleton
    */
    public static OrdreContainer getInstance()
    {
        if(ordreContainer == null){
            ordreContainer = new OrdreContainer();
    }
    return ordreContainer;
    }
    /**
     * Finder ordreListe og tilføjer en ordre til den.
     * 
     * @return Ordre ordre - returner OrdreListe & Ordre
     */
    public boolean addOrdre(Ordre ordre)
    {
        return ordreListe.add(ordre);
    }
    /**
     * Finder ordreListe og fjerner ordren på den.
     * 
     * @return Ordre ordre - Ordreliste & fjern
     */
    public boolean removeOrdre(Ordre ordre)
    {
        return ordreListe.remove(ordre);
    }
    /**
     * Finder en ordre vha. id.
     * 
     * @return int id - Ordre id.
     */
    public Ordre findOrdre(int id)
    {
        for(Ordre ordre : ordreListe){
            if(ordre.getId() == id){
                return ordre;
            }
        }
        return null;
    }
    /**
     * Find alle ordre.
     * 
     * @return int id - Find ordre id.
     */
    public ArrayList<String> getOrdres(int id){
        ArrayList<String> al = new ArrayList<String>();
        for(Ordre ordre : ordreListe){
            if(ordre.getKundeId() == id){
                al.add(String.valueOf(ordre.getId())); // string skal laves til int ved lejlighed.
            }
        }   
        return al;
    }
    /**
     * Eksempel på ordreBase
     * 
     * @Eksempel på ordreBase.
     */
    private void ordreBase()
    {
        ordreListe.add(new Ordre(101, DateFormat.getDateTimeInstance(), true, "Status: leveret", 22334455));
        }
    /**
     * Returner ordrelisten vha. ArrayList
     * 
     * @return ArrayList Ordre - Arraylist over ordre.
     */
    public ArrayList<Ordre> getOrdreListe()
    {
        return ordreListe;
    }
    }
